<?php
/**
 * <https://y.st./>
 * Copyright © 2017 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'<{title}>' => 'A potential host, an eye injury, and a catching-up',
	'takedown' => '2017-11-01',
	'<{body}>' => <<<END
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2017/07/11.jpg" alt="A cicada on a signpost" class="framed-centred-image" width="800" height="480"/>
<section id="general">
	<h2>General news</h2>
	<p>
		Ellenor of <a href="irc://xopo4w4zpyw2u43n.onion:6697/">Umbrellix</a> has graciously offered to host my website!
		It sounds like the arrangement could be temporary, but it does buy me more time to seek a more-permanent solution.
		I&apos;m not sure when the transfer will go down, but Ellenor has said they&apos;ll set the server up to use Let&apos;s Encrypt.
		She buys into the automated certificate updating that I don&apos;t, so that will mean a hassle-free certificate for the next while.
		She also said I could use her server as an $a[IRC] bouncer to get onto other networks, asking that I try not to get her banned from any network that uses a particular public blacklist.
		On principle, I don&apos;t visit networks that maliciously discriminate against $a[Tor] users, but the offer was a kind gesture.
	</p>
	<p>
		I whacked myself in the eye with my keys today.
		That wasn&apos;t fun.
		It&apos;s hard to tell for sure, but I think I see a small scratch on my lens now.
		Hopefully that heals up without issue, but it really hurt for a bit, and now the vision in my left eye is a little blurrier.
	</p>
	<p>
		My <a href="/a/canary.txt">canary</a> still sings the tune of freedom and transparency.
	</p>
</section>
<section id="mental">
	<h2>Mental health watch</h2>
	<p>
		I continue to show marked improvement.
		A couple days ago, I set up the microwave oven that my mother gave me, finally.
		After ... how many months?
		I&apos;ve sort of had a mental block with that thing, and haven&apos;t wanted to touch it.
		Today, I also found myself dancing in the kitchen, this time even without music.
		Since that one incident in which I wanted to die, I haven&apos;t actually had any severe, downward mood swings.
		I&apos;ve cried a little on occasion, but I&apos;m only sad for a short time and the sadness isn&apos;t in any way severe.
		That incident may have, in fact, been an isolated one.
		On the whole, I&apos;ve mostly floated around in the contented-to-happy range.
	</p>
</section>
<section id="university">
	<h2>University life</h2>
	<p>
		I finished my discussion assignment for the week:
	</p>
	<blockquote>
		<p>
			You make a good point about other methods that depend on <code>Object.equals()</code>.
			If you try to call <code>Array.contains()</code> or <code>Array.remove()</code>, it&apos;s not going to have the intended effect unless you&apos;ve defined a more-logical implementation of <code>Object.equals()</code>.
		</p>
	</blockquote>
	<blockquote>
		<p>
			The default implementation of <code>Object.equals()</code> doesn&apos;t perform a value-by-value comparison after performing a <code>==</code> test.
			The <code>==</code> test is the only check that it performs at all!
			This means that if two objects have all the same values, but they exist in different memory locations, <code>Object.equals()</code> will return <code>false</code>, not <code>true</code>.
			It&apos;s possible for a class to override this method, but when it does, it usually will skip the <code>==</code> test altogether.
			There simply isn&apos;t much reason to perform both tests.
		</p>
	</blockquote>
	<blockquote>
		<p>
			I like how in your example, you call the already-defined <code>String.equals()</code> method.
			If your dictionary entries are for the same word, simply comparing the two words could be a reasonable way to determine equivalence.
			The <code>try</code>/<code>catch</code> block was a great idea too.
			That way, you can compare dictionary entries to objects of any other class, but since they&apos;re not equivalent to objects of another class, the method just returns <code>false</code> if the typecast fails.
		</p>
	</blockquote>
	<p>
		In fact, I finished <strong>*everything*</strong> for the week.
		I&apos;m really glad I took today off from work and had someone cover today&apos;s shift.
		I&apos;ll submit my assignments tomorrow; I&apos;m too tired tonight.
		All the heavy-lifting is out of the way though.
	</p>
</section>
END
);
